<?php

Yii::import ( 'gii.components.UserIdentity' );

class LoginForm extends CFormModel
{
    public $password;
    
    private $_identity;
    
    public function rules()
    {
        return array (array ('password', 'required' ), array ('password', 'authenticate' ) );
    }
    
    /**
     * Authenticates the password.
     * This is the 'authenticate' validator as declared in rules().
     */
    public function authenticate($attribute, $params)
    {
        $this->_identity = new UserIdentity ( 'yiier', $this->password );
        if (! $this->_identity->authenticate ())
            $this->addError ( 'password', 'Incorrect password.' );
    }
    
    /**
     * Logs in the user using the given password in the model.
     * @return boolean whether login is successful
     */
    public function login()
    {
        if ($this->_identity === null) {
            $this->_identity = new UserIdentity ( 'yiier', $this->password );
            $this->_identity->authenticate ();
        }
        if ($this->_identity->errorCode === UserIdentity::ERROR_NONE) {
            Yii::app ()->user->login ( $this->_identity );
            return true;
        } else
            return false;
    }
}
